<?php
// Include header for styling
require_once 'includes/header.php';
?>

<div class="container">
    <div class="row mt-4">
        <div class="col-12">
            <div class="card shadow mb-4">
                <div class="card-header py-3">
                    <h6 class="m-0 font-weight-bold text-primary">管理后台问题修复指南</h6>
                </div>
                <div class="card-body">
                    <h2 class="h4 mb-3">发现的问题：</h2>
                    <div class="alert alert-danger">
                        <p><strong>数据库错误:</strong> SQLSTATE[42S02]: Base table or view not found: 1146 Table 'kidsmind.km_cognitive_modules' doesn't exist</p>
                        <p><strong>PDO用法错误:</strong> Fatal error: Uncaught Error: Call to undefined method PDOStatement::bind_param() in modules.php</p>
                    </div>

                    <h2 class="h4 mb-3">问题原因：</h2>
                    <ol>
                        <li>数据库中缺少必要的表格，特别是认知模块相关的表格</li>
                        <li>PHP代码中混用了mysqli和PDO的方法（bind_param是mysqli的方法，而您使用的是PDO连接）</li>
                    </ol>

                    <h2 class="h4 mb-3">解决步骤：</h2>
                    <div class="alert alert-info">
                        <p>我已经创建了两个修复脚本来解决这些问题。请按照以下步骤操作：</p>
                    </div>

                    <div class="mb-4">
                        <h3 class="h5">步骤1：创建数据库表</h3>
                        <p>运行数据库修复工具来创建缺失的数据库表：</p>
                        <a href="fix_database.php" class="btn btn-primary mb-3">运行数据库修复</a>
                        <p>此脚本将：</p>
                        <ul>
                            <li>创建认知模块类别表（km_cognitive_categories）</li>
                            <li>创建认知模块表（km_cognitive_modules）</li>
                            <li>创建认知模块内容表（km_cognitive_items）</li>
                            <li>插入示例数据</li>
                        </ul>
                    </div>

                    <div class="mb-4">
                        <h3 class="h5">步骤2：修复PDO代码用法</h3>
                        <p>修复PHP文件中的PDO用法问题：</p>
                        <a href="fix_pdo.php" class="btn btn-success mb-3">修复PDO用法</a>
                        <p>此脚本将：</p>
                        <ul>
                            <li>扫描所有PHP文件</li>
                            <li>查找并修复PDO用法问题，比如：</li>
                            <ul>
                                <li>将<code>bind_param()</code>替换为正确的PDO参数绑定</li>
                                <li>将<code>get_result()</code>移除（PDO不需要这一步）</li>
                                <li>将<code>fetch_assoc()</code>替换为<code>fetch(PDO::FETCH_ASSOC)</code></li>
                                <li>将<code>affected_rows</code>替换为<code>rowCount()</code></li>
                            </ul>
                            <li>备份原始文件，以防需要恢复</li>
                        </ul>
                    </div>

                    <div class="mb-4">
                        <h3 class="h5">步骤2.1：修复items.php中的特定问题</h3>
                        <p>修复模块内容管理页面中的具体PDO问题：</p>
                        <a href="fix_items.php" class="btn btn-warning mb-3">修复模块内容管理页面</a>
                        <p>您在模块内容管理页面报告了"Undefined property: PDOStatement::$num_rows"错误，这个专用修复工具将：</p>
                        <ul>
                            <li>修复items.php中的特定PDO问题</li>
                            <li>将<code>$stmt->num_rows</code>和<code>$result->num_rows</code>替换为正确的<code>$stmt->rowCount()</code></li>
                            <li>确保结果获取使用正确的变量</li>
                            <li>移除重复的execute()调用</li>
                            <li>创建备份文件，以防需要恢复</li>
                        </ul>
                    </div>

                    <div class="mb-4">
                        <h3 class="h5">步骤3：尝试访问控制面板</h3>
                        <p>修复完成后，尝试访问控制面板：</p>
                        <a href="dashboard.php" class="btn btn-info mb-3">访问控制面板</a>
                        <p>如果一切正常，您应该能够看到功能正常的管理后台。</p>
                    </div>

                    <h2 class="h4 mb-3">遇到其他问题？</h2>
                    <div class="alert alert-warning">
                        <p>如果您仍然遇到问题，可能需要检查：</p>
                        <ol>
                            <li>数据库连接信息（config/database.php）是否正确</li>
                            <li>执行数据库修复脚本时是否有错误信息</li>
                            <li>PHP错误日志中是否有详细的错误信息</li>
                        </ol>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

<?php
// Include footer
require_once 'includes/footer.php';
?> 